# -*- coding: utf-8 -*-
# standard
import os
import sys

# third

# local
_P_PATH =  os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if _P_PATH not in sys.path:
    sys.path.append(_P_PATH)
from functions import *

"""
@Title:   
@File: 修复数据库中被ban的记录.py
@Author: walle 2024年01日02日 12时07分49秒
@Version: 1.0.0
@Desc: 
与 统计下载失败的视频信息.py 相同功能，但是 统计下载失败的视频信息.py更详细，推荐使用 统计下载失败的视频信息.py 替代本脚本。
"""


def main():
    db_session = new_db_session()
    # sub = db_session.query(MediaFileOrm.key).filter(MediaFileOrm.error.like("API解析%")).subquery()
    sub = select(MediaFileOrm.key).filter(MediaFileOrm.error.like("API解析%"))
    cond = and_(
        MediaFileOrm.error != "",
        MediaFileOrm.key.notin_(sub)
    )
    files = [x for x in db_session.query(MediaFileOrm).filter(cond)]
    num = 0
    for x in files:
        x.error = ""
        num += 1
    db_session.commit()
    db_session.close()
    logger.debug(f"共计 {num} 被修复")


if __name__ == '__main__':
    main()
    pass